home *** CD-ROM | disk | FTP | other *** search
/ InfoMagic Internet Tools 1993 July / Internet Tools.iso / RockRidge / mail / pp / pp-6.0 / h / chan.h < prev    next >
Encoding:
C/C++ Source or Header  |  1991-12-18  |  3.4 KB  |  127 lines

  1. /* chan.h: the description of a channel structure */
  2.  
  3. /*
  4.  * @(#) $Header: /xtel/pp/pp-beta/h/RCS/chan.h,v 6.0 1991/12/18 20:42:44 jpo Rel $
  5.  *
  6.  * $Log: chan.h,v $
  7.  * Revision 6.0  1991/12/18  20:42:44  jpo
  8.  * Release 6.0
  9.  *
  10.  *
  11.  */
  12.  
  13.  
  14.  
  15. #ifndef _H_CHAN
  16. #define _H_CHAN
  17.  
  18. #include "table.h"
  19. #include "list_bpt.h"
  20.  
  21.  
  22.  
  23. #define CH_MAX_SORT            10
  24.  
  25.  
  26. typedef struct    chan_struct {
  27.     char        *ch_name;        /* channel name */
  28.     char        *ch_progname;    /* prog name referencing this chan */
  29.     char        *ch_show;        /* Display field of the chan title */
  30.     LIST_BPT    *ch_key;        /* The key to this chan */
  31.     
  32.     int        ch_chan_type;    /* What kind of channel is this */
  33. #define CH_SHAPER        0
  34. #define CH_IN            1
  35. #define CH_OUT            2
  36. #define CH_BOTH            3
  37. #define CH_WARNING        4
  38. #define CH_DELETE        5
  39. #define CH_QMGR_LOAD        6
  40. #define CH_DEBRIS        7
  41. #define CH_TIMEOUT        8
  42. #define CH_POSTMASTER        9
  43. #define CH_SPLITTER        10
  44.  
  45.     char        *ch_drchan;        /* Channel for DRs */
  46.                     
  47.     int        ch_cost;        /* How expensive to run */
  48.                     
  49.     char        ch_sort[CH_MAX_SORT];  /* How to sort the msgs */
  50. #define CH_SORT_USR        01
  51. #define CH_SORT_MTA        02
  52. #define CH_SORT_PRIORITY    03
  53. #define CH_SORT_TIME        04
  54. #define CH_SORT_SIZE        05
  55. #define CH_SORT_NONE        06
  56.  
  57.     char        *ch_in_info;    /* Info locally interpreted by chan */
  58.     char        *ch_out_info;    /* Info locally interpreted by chan */
  59.     char        *ch_content_in;    /* Incoming content of a message */
  60.     char        *ch_content_out;    /* Outgoing content of a message */
  61.  
  62.     int        ch_in_ad_type;        /* Address in types */
  63.     int        ch_out_ad_type;        /* Address out types */
  64.     int        ch_in_ad_subtype;    /* Address subtypes */
  65.                     /* Used outbound */
  66.                     /* on inbound to turn on percentages */
  67.                     /* as routing */
  68.     int        ch_out_ad_subtype;    /* address subtype outbound */
  69.     
  70.     int        ch_ad_order;    /* Ordering of the incoming domain */
  71.                     /* for submit to interpret */
  72. #define CH_USA_ONLY        00
  73. #define CH_USA_PREF        01
  74. #define CH_UK_ONLY        02
  75. #define CH_UK_PREF        03
  76.  
  77.  
  78.     LIST_BPT    *ch_hdr_in;        /* Incoming header types */
  79.     LIST_BPT    *ch_hdr_out;    /* Outgoing header types  */
  80.     LIST_BPT    *ch_bpt_in;        /* Incoming body part types */
  81.     LIST_BPT    *ch_bpt_out;    /* Outgoing body part types  */
  82.     Table        *ch_mta_table;    /* MTA matching table */
  83.     Table        *ch_table;        /* outbound table */
  84.     Table        *ch_in_table;    /* inbound table */
  85.  
  86.     Table        *ch_auth_tbl;    /* Table of authentication stuff */
  87.     char        *ch_mta;        /* Mta to route through */
  88.     unsigned int
  89.         ch_probe:1,    /* Does the channel support probes */
  90.         ch_domain_norm:1,    /* parse all domains or just next hop */
  91. #define CH_DOMAIN_NORM_PARTIAL    0
  92. #define CH_DOMAIN_NORM_ALL    1
  93.         ch_conversion:2,    /* what sort of conversion this does */
  94. #define CH_CONV_NONE        0
  95. #define CH_CONV_1148        1
  96. #define CH_CONV_CONVERT        2
  97. #define CH_CONV_WITHLOSS    3
  98.         ch_access:1,        /* The type of channel access */
  99. #define CH_MTS            00
  100. #define CH_MTA            01
  101.        ch_trace_type:2,    /* Text type of trace for messages */
  102.                     /* interpreted by submit */
  103. #define CH_TRACE_RECEIVED    1
  104. #define CH_TRACE_VIA        2
  105. #define CH_TRACE_X400        3
  106.        ch_solo_proc:1,
  107.     /* what to do with DRs for unroutable senders */
  108. #define CH_BADSENDER_STRICT    0
  109. #define CH_BADSENDER_SLOPPY    1
  110.        ch_badSenderPolicy:2,
  111. #define CH_STRICT_CHECK        0
  112. #define CH_SLOPPY_CHECK        1
  113.        ch_strict_mode:1;
  114.  
  115.     int        ch_maxproc;        /* Max instances of channel qmgr */
  116.                     /* can run */
  117. } CHAN;
  118.  
  119.  
  120. #define NULLCHAN        ((CHAN *)0)
  121.  
  122. extern    CHAN            *ch_nm2struct();
  123. extern    CHAN            *ch_mta2struct();
  124. extern    CHAN            **ch_all;  /* all chans from tailor file */
  125.  
  126. #endif
  127.